// pages/my-bookings/my-bookings.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    backendUrl: 'http://127.0.0.1:88/api/user/',
    activeTab: 'course',  // 当前选中的标签
    bookingList: []       // 预约列表
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.loadBookings();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.loadBookings();
    wx.stopPullDownRefresh();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  // 切换标签
  switchTab(e) {
    const type = e.currentTarget.dataset.type;
    this.setData({ activeTab: type });
    this.loadBookings();
  },

  // 加载预约列表
  loadBookings() {
    const userInfo = wx.getStorageSync('userInfo');
    if (!userInfo) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      return;
    }

    wx.showLoading({
      title: '加载中...',
      mask: true
    });

    wx.request({
      url: this.data.backendUrl + 'get_bookings.php',
      method: 'GET',
      data: {
        user_id: userInfo.id,
        type: this.data.activeTab === 'course' ? 2 : 1
      },
      success: (res) => {
        if (res.data.status === 'success') {
          this.setData({
            bookingList: res.data.bookings
          });
        } else {
          wx.showToast({
            title: res.data.message || '加载失败',
            icon: 'none'
          });
        }
      },
      complete: () => {
        wx.hideLoading();
      }
    });
  },

  // 取消预约
  cancelBooking(e) {
    const bookingId = e.currentTarget.dataset.id;
    
    wx.showModal({
      title: '确认取消',
      content: '确定要取消这个预约吗？',
      success: (res) => {
        if (res.confirm) {
          // 显示 loading
          wx.showLoading({
            title: '取消中...',
            mask: true
          });

          const userInfo = wx.getStorageSync('userInfo');
          
          wx.request({
            url: this.data.backendUrl + 'cancel_booking.php',
            method: 'POST',
            header: {
              'content-type': 'application/x-www-form-urlencoded'
            },
            data: {
              booking_id: bookingId,
              user_id: userInfo.id  // 添加用户ID用于验证
            },
            success: (res) => {
              // 隐藏 loading
              wx.hideLoading();
              
              if (res.data.status === 'success') {
                wx.showToast({
                  title: '取消成功',
                  icon: 'success'
                });
                // 重新加载预约列表
                this.loadBookings();
              } else {
                wx.showToast({
                  title: res.data.message || '取消失败',
                  icon: 'none'
                });
              }
            },
            fail: (err) => {
              // 请求失败时也要隐藏 loading
              wx.hideLoading();
              wx.showToast({
                title: '网络错误',
                icon: 'none'
              });
            }
          });
        }
      }
    });
  },

  // 查看详情
  viewDetail(e) {
    const { type, id } = e.currentTarget.dataset;
    wx.navigateTo({
      url: type === 1 ? 
        `/pages/coach-detail/coach-detail?id=${id}` : 
        `/pages/course-detail/course-detail?id=${id}`
    });
  },

  // 确认支付
  confirmBooking(e) {
    const bookingId = e.currentTarget.dataset.id;
    wx.showModal({
      title: '确认支付',
      content: `是否确认支付该预约费用？`,
      confirmText: '立即支付',
      success: async (res) => {
        if (res.confirm) {
          wx.showLoading({ title: '支付处理中...' });
          try {
            // 模拟支付接口调用
            const res = await this.mockPayment(bookingId);
            if (res.data.status === 'success') {
              wx.showToast({ title: '支付成功' });
              this.loadBookings();
            }
          } catch (err) {
            wx.showToast({ title: '支付失败', icon: 'none' });
          } finally {
            wx.hideLoading();
          }
        }
      }
    });
  },

  // 模拟支付方法
  mockPayment(bookingId) {
    return new Promise((resolve, reject) => {
      wx.request({
        url: this.data.backendUrl + 'confirm_booking.php',
        method: 'POST',
        data: {
          booking_id: bookingId,
          user_id: wx.getStorageSync('userInfo').id
        },
        success: resolve,
        fail: reject
      });
    });
  },

  // 跳转评价页面
  goToEvaluate(e) {
    const coachId = e.currentTarget.dataset.coachId;
    wx.navigateTo({
      url: `/pages/evaluate-submit/evaluate-submit?coach_id=${coachId}`
    });
  }

})